package com.fowo.api.model.supplie.set;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 供应商配置 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SupplieSetImportPo {

  /** 分类 */
  @ExcelProperty("*分类")
  @NotBlank(message = "分类不能为空")
  @Size(max = 50, message = "分类长度不能超过50")
  private String type;

  /** 显示字段 */
  @ExcelProperty("*显示字段")
  @NotBlank(message = "显示字段不能为空")
  @Size(max = 200, message = "显示字段长度不能超过200")
  private String displayFields;

  /** 开发任务最大上传图片数 */
  @ExcelProperty("*开发任务最大上传图片数")
  @NotBlank(message = "开发任务最大上传图片数不能为空")
  @IntegerString(
    message = "开发任务最大上传图片数数值格式不正确",
    label = "开发任务最大上传图片数"
  )
  private String tasksmaxImagesQuantity;

  /** 状态 */
  @ExcelProperty("*状态")
  @NotBlank(message = "状态不能为空")
  private String status;

  /** 水印定位 */
  @ExcelProperty("*水印定位")
  @NotBlank(message = "水印定位不能为空")
  @Size(max = 50, message = "水印定位长度不能超过50")
  private String watermarkLocalization;

  /** 水印时间 */
  @ExcelProperty("*水印时间")
  @NotBlank(message = "水印时间不能为空")
  @DateTimeString(message = "水印时间不是有效的时间日期格式")
  private String watermarkTime;

  /** 水印员工号 */
  @ExcelProperty("*水印员工号")
  @NotBlank(message = "水印员工号不能为空")
  @LongString(
    message = "水印员工号数值格式不正确",
    label = "水印员工号",
    min = 0L
  )
  private String watermarkEmployeeId;

  /** 水印员工姓名 */
  @ExcelProperty("*水印员工姓名")
  @NotBlank(message = "水印员工姓名不能为空")
  @Size(max = 50, message = "水印员工姓名长度不能超过50")
  private String watermarkEmployeeName;

  /** 拍照最大上传图片数 */
  @ExcelProperty("*拍照最大上传图片数")
  @NotBlank(message = "拍照最大上传图片数不能为空")
  @IntegerString(
    message = "拍照最大上传图片数数值格式不正确",
    label = "拍照最大上传图片数",
    min = 0
  )
  private String photographymaxImagesQuantity;

  /** 系统评估占比（默认50%） */
  @ExcelProperty("*系统评估占比（默认50%）")
  @NotBlank(message = "系统评估占比（默认50%）不能为空")
  @Size(max = 50, message = "系统评估占比（默认50%）长度不能超过50")
  private String systemEvaluationProportion;

  /** 人工评分占比（默认50%） */
  @ExcelProperty("*人工评分占比（默认50%）")
  @NotBlank(message = "人工评分占比（默认50%）不能为空")
  @Size(max = 50, message = "人工评分占比（默认50%）长度不能超过50")
  private String artificialEvaluationProportion;

  /** 订单量 */
  @ExcelProperty("*订单量")
  @NotBlank(message = "订单量不能为空")
  @IntegerString(message = "订单量数值格式不正确", label = "订单量", min = 0)
  private String orderQuantity;

  /** 巡场周期 */
  @ExcelProperty("*巡场周期")
  @NotBlank(message = "巡场周期不能为空")
  @EnumsString(
    value = { "每周（默认每周两次）", "每月", "每季度", "每年" },
    message = "巡场周期只能是“每周（默认每周两次）”, “每月”, “每季度”, “每年”中的一个"
  )
  private String patrolPeriod;

  /** 自定义 */
  @ExcelProperty("自定义")
  private String custom;

  /** 考核标准（分） */
  @ExcelProperty("*考核标准（分）")
  @NotBlank(message = "考核标准（分）不能为空")
  @IntegerString(
    message = "考核标准（分）数值格式不正确",
    label = "考核标准（分）",
    min = 0
  )
  private String assessmentStandardScore;

  /** 评估周期 */
  @ExcelProperty("*评估周期")
  @NotBlank(message = "评估周期不能为空")
  @EnumsString(
    value = { "每周", "每月", "每季度（默认每季度两次）", "每年" },
    message = "评估周期只能是“每周”, “每月”, “每季度（默认每季度两次）”, “每年”中的一个"
  )
  private String supplierEvaluationPeriod;

  /** 资深供应商周期 */
  @ExcelProperty("*资深供应商周期")
  @NotBlank(message = "资深供应商周期不能为空")
  @EnumsString(
    value = { "周", "月", "季度", "年（默认一年）" },
    message = "资深供应商周期只能是“周”, “月”, “季度”, “年（默认一年）”中的一个"
  )
  private String seniorSupplierPeriod;
}
